package main

import "fmt"

func main() {

	data := [5]int{1, 2, 3, 4, 5}
	//定义一个切片
	mslice := []int{2, 3, 6}
	m2slice := make([]int, 5, 5)
	getData(data)
	fmt.Println(data)
	fmt.Println("====================")
	getDataByPoint(&data)
	fmt.Println(data)
	fmt.Println("原有值", mslice)
	changeSlice(mslice)
	fmt.Println("改变之后的值", mslice)
	fmt.Println("原有值", m2slice)
	changeSlice(m2slice)
	fmt.Println("改变之后的值", m2slice)
}

// 传具体数组不会原来的数组的值**
func getData(a [5]int) {
	a[4] = 100
}

// 传引用的类型数据是会改变原有的数组的值
func getDataByPoint(p *[5]int) {
	p[3] = 20
}

//===========================
//使用切片试试，所以切片是会改变原来的值的。

func changeSlice(mslice []int) {
	mslice[2] = 10000
}
